import {useCache} from '@/hooks/web/useCache'

const {wsCache} = useCache()

export type LayoutType = 'classic' | 'topLeft' | 'top' | 'cutMenu'

export type ThemeTypes = {
    elColorPrimary?: string
    leftMenuBorderColor?: string
    leftMenuBgColor?: string
    leftMenuBgLightColor?: string
    leftMenuBgActiveColor?: string
    leftMenuCollapseBgActiveColor?: string
    leftMenuTextColor?: string
    leftMenuTextActiveColor?: string
    logoTitleTextColor?: string
    logoBorderColor?: string
    topHeaderBgColor?: string
    topHeaderTextColor?: string
    topHeaderHoverColor?: string
    topToolBorderColor?: string
}

export interface AppState {
    breadcrumb: boolean
    breadcrumbIcon: boolean
    collapse: boolean
    uniqueOpened: boolean
    hamburger: boolean
    screenfull: boolean
    size: boolean
    locale: boolean
    tagsView: boolean
    tagsViewIcon: boolean
    logo: boolean
    fixedHeader: boolean
    greyMode: boolean
    pageLoading: boolean
    layout: LayoutType
    title: string
    userInfo: string
    isDark: boolean
    currentSize: ElememtPlusSize
    sizeMap: ElememtPlusSize[]
    mobile: boolean
    footer: boolean
    theme: ThemeTypes
}

export const appModules: AppState = {
    userInfo: 'hospUserInfo', // 登录信息存储字段-建议每个项目换一个字段，避免与其他项目冲突
    sizeMap: ['default', 'large', 'small'],
    mobile: false, // 是否是移动端
    title: import.meta.env.VITE_APP_TITLE, // 标题
    pageLoading: false, // 路由跳转loading

    breadcrumb: true, // 面包屑
    breadcrumbIcon: true, // 面包屑图标
    collapse: false, // 折叠菜单
    uniqueOpened: false, // 是否只保持一个子菜单的展开
    hamburger: true, // 折叠图标
    screenfull: true, // 全屏图标
    size: true, // 尺寸图标
    locale: true, // 多语言图标
    tagsView: true, // 标签页
    tagsViewIcon: true, // 是否显示标签图标
    logo: true, // logo
    fixedHeader: true, // 固定toolheader
    footer: true, // 显示页脚
    greyMode: false, // 是否开始灰色模式，用于特殊悼念日

    layout: wsCache.get('layout') || 'classic', // layout布局
    isDark: wsCache.get('isDark') || false, // 是否是暗黑模式
    currentSize: wsCache.get('default') || 'default', // 组件尺寸
    theme: wsCache.get('theme') || {
        // 主题色
        elColorPrimary: '#00A991',
        // 左侧菜单边框颜色
        leftMenuBorderColor: '#fff',
        // 左侧菜单背景颜色
        leftMenuBgColor: '#fff',
        // 左侧菜单浅色背景颜色
        leftMenuBgLightColor: '#fff',
        // 左侧菜单选中背景颜色
        leftMenuBgActiveColor: 'var(--el-color-primary)',
        // 左侧菜单收起选中背景颜色
        leftMenuCollapseBgActiveColor: 'var(--el-color-primary)',
        // 左侧菜单字体颜色
        leftMenuTextColor: '#4E5969',
        // 左侧菜单选中字体颜色
        leftMenuTextActiveColor: '#fff',
        // logo字体颜色
        logoTitleTextColor: '#fff',
        // logo边框颜色
        logoBorderColor: '#fff',
        // 头部背景颜色
        topHeaderBgColor: 'var(--el-color-primary)',
        // 头部字体颜色
        topHeaderTextColor: 'inherit',
        // 头部悬停颜色
        topHeaderHoverColor: '#f6f6f6',
        // 头部边框颜色
        topToolBorderColor: '#fff'
    }
}
